#!/usr/bin/env python
# -*- coding: UTF-8 -*-
"""
@author:liang
@file:del.py
@time:2022/02/05
"""
import os


def del_dir(path):
    """
    清理空文件夹和空文件
    param path: 文件路径，检查此文件路径下的子文件
    """
    print('*' * 30)
    try:
        files = os.listdir(path)  # 获取路径下的子文件(夹)列表
        print(files)
        for file in files:
            print('遍历路径：' + os.fspath(path + '/' + file))
            if os.path.isdir(os.fspath(path + '/' + file)):  # 如果是文件夹
                print(file + '是文件夹')
                if not os.listdir(os.fspath(path + '/' + file)):  # 如果子文件为空
                    print(file + '是空文件夹,即将执行删除操作')
                    os.rmdir(os.fspath(path + '/' + file))  # 删除这个空文件夹
                else:
                    print(file + '不是空文件夹')
                    del_dir(os.fspath(path + '/' + file))  # 遍历子文件
                    if not os.listdir(os.fspath(path + '/' + file)):  # 如果子文件为空
                        print(file + '是空文件夹,即将执行删除操作')
                        os.rmdir(os.fspath(path + '/' + file))  # 删除这个空文件夹
            elif os.path.isfile(os.fspath(path + '/' + file)):  # 如果是文件
                print(file + '是文件')
                if os.path.getsize(os.fspath(path + '/' + file)) == 0:  # 文件大小为0
                    print(file + '是空文件，即将执行删除操作！')
                    os.remove(os.fspath(path + '/' + file))  # 删除这个文件
        return
    except FileNotFoundError:
        print("文件夹路径错误")


if __name__ == "__main__":
    print('当前目录是：' + os.getcwd())
    mode = input("1：当前路径\n2：指定路径\n请输入:")
    if str(mode) == '1' or mode == '':
        del_dir(os.getcwd())
    elif str(mode) == '2':
        path = input("请输入文件夹路径:")  # 输入路径
        del_dir(path)
    else:
        input("输入错误，回车结束")
    input("运行完成，回车结束")

# pyinstaller -F -i del.ico del.py
